import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';

import {PageIndexComponent} from './doc/page-index/page-index.component';
import {PageDocComponent} from './doc/page-doc/page-doc.component';
import {PageApiComponent} from './doc/page-api/page-api.component';
import {PageHistoryComponent} from './doc/page-history/page-history.component';
import {AppComponent} from './app.component';
import {AppRoutingModule} from './app-routing.module';
import {HeaderComponent} from './common/header/header.component';
import {LeftNavComponent} from './common/left-nav/left-nav.component';
import {LeftNavApiItemComponent} from './common/left-nav-api-item/left-nav-api-item.component';
import {SafeHtmlPipe} from './pipe/safe-html.pipe';
import {CrumbComponent} from './common/crumb/crumb.component';
import {HttpClientModule} from '@angular/common/http';
import {LeftNavDocItemComponent} from './common/left-nav-doc-item/left-nav-doc-item.component';
import {RenderTableParamsComponent} from './common/render-table-params/render-table-params.component';
import {StartWithPipe} from './pipe/start-with.pipe';
import {RenderTableEntityComponent} from './common/render-table-entity/render-table-entity.component';
import {SimpleEntityNamePipe} from './pipe/simple-entity-name.pipe';
import {ScrollHoldDirective} from './directive/scroll-hold.directive';
import {HighlightPlusModule} from 'ngx-highlightjs/plus';
import {EntityJsonPipe} from './pipe/entity-json.pipe';
import {DubboApiPipe} from './pipe/dubbo-api.pipe';
import {SiteMessageComponent} from './common/site-message/site-message.component';
import {HideOnClickOutsideDirective} from './directive/hide-on-click-outside.directive';
import {MarkdownModule} from 'ngx-markdown';
import {DubboDependencyMavenPipe} from './pipe/dubbo-dependency-maven.pipe';
import {DubboDependencyGradlePipe} from './pipe/dubbo-dependency-gradle.pipe';
import {DubboApiReferencePipe} from './pipe/dubbo-api-reference.pipe';
import {PageApiRestComponent} from './doc/page-api-rest/page-api-rest.component';
import {PageApiDubboComponent} from './doc/page-api-dubbo/page-api-dubbo.component';
import {PageApiRestDemoComponent} from './doc/page-api-rest-demo/page-api-rest-demo.component';
import {PageInvokeComponent} from './doc/page-invoke/page-invoke.component';
import {SelectorComponent} from './common/selector/selector.component';
import {InvokeCodeComponent} from './common/invoke-code/invoke-code.component';
import {InvokeResponseComponent} from './common/invoke-response/invoke-response.component';
import {FormsModule} from '@angular/forms';
import {InvokeRequestBodyComponent} from './common/invoke-request-body/invoke-request-body.component';
import {NgJsonEditorModule} from 'ang-jsoneditor';
import {InvokeRequestParamTableComponent} from './common/invoke-request-param-table/invoke-request-param-table.component';
import {UserLoginComponent} from './common/user-login/user-login.component';
import {PopDialogComponent} from './common/pop-dialog/pop-dialog.component';
import {OauthComponent} from './common/oauth/oauth.component';
import {UserLoginFullComponent} from './common/user-login-full/user-login-full.component';
import {UserInfoComponent} from './setting/user-info/user-info.component';
import {NgxJsonViewerModule} from 'ngx-json-viewer';
import {EnvComponent} from './setting/env/env.component';
import {PageInvokeDubboComponent} from './doc/page-invoke-dubbo/page-invoke-dubbo.component';
import {DescPipe} from './pipe/desc.pipe';
import {InvokeRequestParamListComponent} from './common/invoke-request-param-list/invoke-request-param-list.component';
import {InvokeLogComponent} from './setting/invoke-log/invoke-log.component';
import {PagerComponent} from './common/pager/pager.component';
import {PageApiMockComponent} from './doc/page-api-mock/page-api-mock.component';
import {DocHeaderComponent} from './doc-component/doc-header/doc-header.component';
import {DocMockRestConditionComponent} from './doc-component/doc-mock-rest-condition/doc-mock-rest-condition.component';
import {DocMockDubboConditionComponent} from './doc-component/doc-mock-dubbo-condition/doc-mock-dubbo-condition.component';
import {DocMockConditionTableComponent} from './doc-component/doc-mock-condition-table/doc-mock-condition-table.component';
import {DocMockRestConfigComponent} from './doc-component/doc-mock-rest-config/doc-mock-rest-config.component';
import {DocMockItemConfigComponent} from './doc-component/doc-mock-item-config/doc-mock-item-config.component';
import {SubStringPipe} from './pipe/sub-string.pipe';
import {PageApiMockListComponent} from './doc/page-api-mock-list/page-api-mock-list.component';
import {DocMockReviewComponent} from './doc-component/doc-mock-review/doc-mock-review.component';
import {RenderTableHeaderParamsComponent} from './common/render-table-header-params/render-table-header-params.component';
import {BaseDocComponent} from './doc/page-doc/base-doc.component';

// const highlightOptions: HighlightOptions = {
//     theme: 'agate',
//     auto: true
// };

@NgModule({
    declarations: [
        PageIndexComponent,
        PageDocComponent,
        PageApiComponent,
        PageHistoryComponent,
        AppComponent,
        HeaderComponent,
        LeftNavComponent,
        LeftNavApiItemComponent,
        LeftNavDocItemComponent,
        CrumbComponent,
        RenderTableParamsComponent,
        RenderTableEntityComponent,
        SiteMessageComponent,
        PageApiRestComponent,
        PageApiDubboComponent,
        PageApiRestDemoComponent,
        PageInvokeComponent,
        SelectorComponent,
        InvokeCodeComponent,
        InvokeResponseComponent,
        InvokeRequestBodyComponent,
        InvokeRequestParamTableComponent,
        UserLoginComponent,
        PopDialogComponent,
        // BaseDocComponent,

        SimpleEntityNamePipe,
        StartWithPipe,
        SafeHtmlPipe,
        EntityJsonPipe,
        DubboDependencyMavenPipe,
        DubboDependencyGradlePipe,
        DubboApiReferencePipe,
        DubboApiPipe,
        DescPipe,

        ScrollHoldDirective,
        HideOnClickOutsideDirective,
        OauthComponent,
        UserLoginFullComponent,
        UserInfoComponent,
        EnvComponent,
        PageInvokeDubboComponent,
        InvokeRequestParamListComponent,
        InvokeLogComponent,
        PagerComponent,
        PageApiMockComponent,
        DocHeaderComponent,
        DocMockRestConditionComponent,
        DocMockDubboConditionComponent,
        DocMockConditionTableComponent,
        DocMockRestConfigComponent,
        DocMockItemConfigComponent,
        SubStringPipe,
        PageApiMockListComponent,
        DocMockReviewComponent,
        RenderTableHeaderParamsComponent
    ],
    imports: [
        HighlightPlusModule,
        BrowserModule,
        NgxJsonViewerModule,
        AppRoutingModule,
        HttpClientModule,
        FormsModule,
        NgJsonEditorModule,
        MarkdownModule.forRoot()
    ],
    providers: [],
    bootstrap: [AppComponent]
})
export class AppModule {
}
